package com.lagou.service.impl;

import com.lagou.base.StatusCode;
import com.lagou.dao.CourseDao;
import com.lagou.dao.impl.CourseDaoImpl;
import com.lagou.pojo.Course;
import com.lagou.service.CourseService;
import com.lagou.utils.DateUtils;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 课程管理模块Service层实现类
 */
public class CourseServiceImpl implements CourseService {

    //声明CourseDao的引用指向该类的对象，用于调用Dao层的方法
    CourseDao courseDao = new CourseDaoImpl();

    //查询课程信息列表
    @Override
    public List<Course> findCourseList() {
        List<Course> courseList = courseDao.findCourseList();
        return courseList;
    }

    //条件查询课程信息
    @Override
    public List<Course> findByCourseNameAndStatus(String courseName, String status) {
        List<Course> courselist = courseDao.findByCourseNameAndStatus(courseName, status);
        return courselist;
    }

    //保存&修改 课程营销信息
    @Override
    public String saveCourseSalesInfo(Course course) {
        /*//补全课程营销信息
        String dateFormart = DateUtils.getDateFormart();
        course.setCreate_time(dateFormart);
        course.setUpdate_time(dateFormart);
        course.setStatus(1);*/

        //插入操作
        int i = courseDao.saveCourseSalesInfo(course);

        //判断
        if(i>0){
            //插入成功
            String s = StatusCode.SUCCESS.toString();
            return s;
        }else {
            String s = StatusCode.FAIL.toString();
            return s;
        }
    }

    //根据ID获取课程营销信息
    @Override
    public Course findCourseById(int id) {
        return courseDao.findCourseById(id);
    }

    @Override
    public String updateCourseSalesInfo(Course course) {

        int i = courseDao.updateCourseSalesInfo(course);

        //判断是否保存成功
        if(i>0){
            //保存成功
            String result = StatusCode.SUCCESS.toString();
            return result;
        }else {
            String result = StatusCode.FAIL.toString();
            return result;
        }
    }

    //修改课程状态
    @Override
    public Map<String, Integer> updateCourseStatus(Course course) {
        
        //调用dao
        int i = courseDao.updateCourseStatus(course);

        Map<String ,Integer> map = new HashMap<>();
        //若数据库受影响的行数大于0
        if(i > 0){
            //根据上架状态，将对应响应结果放入map中
            if(course.getStatus() == 0){
                map.put("status",0);
            }else{
                map.put("status",1);
            }
        }
        return map;
    }

}
